﻿namespace MEF_Test.Contracts
{
    public interface IMediaHandlerFactoryProvider
    {
        /// <summary>
        /// Gets the media handler factory.
        /// </summary>
        /// <param name="fileHandler">The file handler.</param>
        /// <returns>An <see cref="IMediaHandlerFactory"/> instance which can be used to create <see cref="IMediaHandler"/> instances.</returns>
        IMediaHandlerFactory GetMediaHandlerFactory(IFileHandler fileHandler);

        /// <summary>
        /// Gets the media handler factory.
        /// </summary>
        /// <param name="contentType">Type of the content.</param>
        /// <returns>An <see cref="IMediaHandlerFactory"/> instance which can be used to create <see cref="IMediaHandler"/> instances.</returns>
        IMediaHandlerFactory GetMediaHandlerFactory(string contentType);

        /// <summary>
        /// Gets the content type mapped to the specified Path.
        /// </summary>
        /// <param name="path">The path to the file.</param>
        /// <returns>The content type.</returns>
        string GetContentTypeFromPath(string path);
    }
}
